<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
</html>
<script>
   let obj = {
     num: 10,
     msg: "proxy"
   }

   // 只能一次性监听一个属性，如果对象的某一个属性，是未来添加，可能会导致数据更新视图不更的情况。
//    Object.defineProperty(obj,'num',{
//     get(){ // 获取的时候会触发
//       return 1
//     },
//     set(val){ // 设置的时候会触发
//       console.log(val);
//     }
//    })
//    obj.num = 200;
//    console.log(obj.num);


// 在vue3 中使用的是es6 提供的 proxy
// 在vue3 中不存在数据更新视图不更新的问题，vue3 里面没有了$set
let obj1 = new Proxy(obj,{
    // target === obj key 是属性名
    get(target,key){
      return target[key] + 1
    },
    set(){

    }
})
// obj.name = "张三";
console.log(obj1);
</script>